package com.oi.eksekutif.domain;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * Created by IntelliJ IDEA.
 * Author   : Deny Prasetyo, S.T
 * Email    : jasoet87@gmail.com
 * Blog     : jasoet.wordpress.com
 * Twitter  : http://www.twitter.com/jasoet
 */
@Entity
@Table
public class Mobil implements Serializable {

    @Id
    @GeneratedValue
    private Long id;
    @Column(length = 15, unique = true, nullable = false)
    @Size(max = 15)
    @NotNull
    private String nomorPintu;
    @Column(length = 10, unique = true, nullable = false)
    @Size(max = 10)
    @NotNull
    private String nomorPolisi;
    @Column(length = 255, unique = true, nullable = false)
    @Size(max = 255)
    @NotNull
    private String nomorRangka;
    @Column(length = 255, unique = true, nullable = false)
    @Size(max = 255)
    @NotNull
    private String nomorMesin;
    @ManyToOne
    @NotNull
    @JoinColumn(nullable = false)
    private MerkMobil merkMobil;
    @Column(nullable = false)
    @NotNull
    private int jumlahSetoran;
    @Temporal(javax.persistence.TemporalType.DATE)
    @NotNull
    @Column(nullable = false)
    private Date tanggalKir;
    @Temporal(javax.persistence.TemporalType.DATE)
    @NotNull
    @Column(nullable = false)
    private Date tanggalArgo;
    @Temporal(javax.persistence.TemporalType.DATE)
    @NotNull
    @Column(nullable = false)
    private Date tanggalStnk;
    @Temporal(javax.persistence.TemporalType.DATE)
    @NotNull
    @Column(nullable = false)
    private Date tanggalUsaha;
    @Temporal(javax.persistence.TemporalType.DATE)
    @NotNull
    @Column(nullable = false)
    private Date tanggalPengawasan;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getNomorPintu() {
        return nomorPintu;
    }

    public void setNomorPintu(String nomorPintu) {
        this.nomorPintu = nomorPintu;
    }

    public String getNomorPolisi() {
        return nomorPolisi;
    }

    public void setNomorPolisi(String nomorPolisi) {
        this.nomorPolisi = nomorPolisi;
    }

    public String getNomorRangka() {
        return nomorRangka;
    }

    public void setNomorRangka(String nomorRangka) {
        this.nomorRangka = nomorRangka;
    }

    public String getNomorMesin() {
        return nomorMesin;
    }

    public void setNomorMesin(String nomorMesin) {
        this.nomorMesin = nomorMesin;
    }

    public MerkMobil getMerkMobil() {
        return merkMobil;
    }

    public void setMerkMobil(MerkMobil merkMobil) {
        this.merkMobil = merkMobil;
    }

    public int getJumlahSetoran() {
        return jumlahSetoran;
    }

    public void setJumlahSetoran(int jumlahSetoran) {
        this.jumlahSetoran = jumlahSetoran;
    }

    public Date getTanggalKir() {
        return tanggalKir;
    }

    public void setTanggalKir(Date tanggalKir) {
        this.tanggalKir = tanggalKir;
    }

    public Date getTanggalArgo() {
        return tanggalArgo;
    }

    public void setTanggalArgo(Date tanggalArgo) {
        this.tanggalArgo = tanggalArgo;
    }

    public Date getTanggalStnk() {
        return tanggalStnk;
    }

    public void setTanggalStnk(Date tanggalStnk) {
        this.tanggalStnk = tanggalStnk;
    }

    public Date getTanggalUsaha() {
        return tanggalUsaha;
    }

    public void setTanggalUsaha(Date tanggalUsaha) {
        this.tanggalUsaha = tanggalUsaha;
    }

    public Date getTanggalPengawasan() {
        return tanggalPengawasan;
    }

    public void setTanggalPengawasan(Date tanggalPengawasan) {
        this.tanggalPengawasan = tanggalPengawasan;
    }
}
